package factory_pattern

import "project/design/factory/products"

type MouseFactory interface {
	CreateMouse() products.Mouse
}

/////////////////////////////////////////////
type DellMouseFactory struct{}

func CreateDellMouseFactory() MouseFactory {
	return new(DellMouseFactory)
}
func (df *DellMouseFactory) CreateMouse() products.Mouse {
	return new(products.DellMouse)
}

/////////////////////////////////////////////
type HpMouseFactory struct{}

func CreateHpMouseFactory() MouseFactory {
	return new(HpMouseFactory)
}
func (df *HpMouseFactory) CreateMouse() products.Mouse {
	return new(products.HpMouse)
}
